{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<center>\n",
    "<img src=\"../../img/ods_stickers.jpg\">\n",
    "## Открытый курс по машинному обучению\n",
    "<center>Автор материала: Андрей Гуревич (@amber4eg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Как получать оповещения от Jupyter notebook`а в Telegram?\n",
    "Довольно просто. Нам понадобится свой телеграм-бот, один пакет и одна строчка кода\n",
    "А результат будет таким:\n",
    "![](https://habrastorage.org/webt/59/db/7a/59db7acc87064607135491.png)\n",
    "<cut />\n",
    "## Как создать бота?\n",
    "Достаточно написать в приват телеграм-пользователю @BotFather. Он выдаст список команд, которые понимает. Но нас интересует `/newbot`\n",
    "Надо будет указать имя бота (\"человеческое\") и его username (который потом будет доступен через @). В моём примере это \"Лучший бот\" и \"habra_test_bot\".\n",
    "\n",
    "![](https://habrastorage.org/webt/59/db/67/59db672fc73ed553954773.png)\n",
    "\n",
    "В ответе бота нас интересуют ссылка `t.me/habra_test_bot` и 2 строчки:\n",
    ">Use this token to access the HTTP API:\n",
    ">\n",
    ">442932741:AAGIBZeHev3I5d0S_cWszRYKMw898Ft9uac\n",
    "\n",
    "Пока просто запомним, что вот он, токен.\n",
    "\n",
    "## Чего ещё не хватает?\n",
    "Не хватает нам пакета `telegram-send`. Ставится он через `pip`. В консоли надо выполнить\n",
    "\n",
    "`pip install telegram-send`\n",
    "\n",
    ">Collecting telegram-send\n",
    "  Using cached telegram_send-0.18-py2.py3-none-any.whl\n",
    ">Requirement already satisfied: appdirs in c:\\python\\anaconda3\\lib\\site-packages (from telegram-send)\n",
    "\n",
    ">Requirement already satisfied: python-telegram-bot>=5.0 in c:\\python\\anaconda3\\lib\\site-packages (from telegram-send)\n",
    "\n",
    ">Requirement already satisfied: colorama in c:\\python\\anaconda3\\lib\\site-packages (from telegram-send)\n",
    "\n",
    ">Requirement already satisfied: certifi in c:\\python\\anaconda3\\lib\\site-packages (from python-telegram-bot>=5.0->telegram-send)\n",
    "\n",
    ">Requirement already satisfied: future>=0.16.0 in c:\\python\\anaconda3\\lib\\site-packages (from python-telegram-bot>=5.0-telegram-send)\n",
    "\n",
    ">Installing collected packages: telegram-send\n",
    "\n",
    ">Successfully installed telegram-send-0.18\n",
    "\n",
    "Далее требуется настроить `telegram-send`, чтобы он знал, куда писать. Для этого снова в консоли:\n",
    "`telegram-send --configure`\n",
    "\n",
    "Вот тут нам и понадобится токен, который сообщил @BotFather (его надо будет отправтить в ответ на приглашение в консоли):\n",
    ">Talk with the BotFather on Telegram (https://telegram.me/BotFather), create a bot and insert the token\n",
    "\n",
    ">\u001b[35m> \u001b[0m442932741:AAGIBZeHev3I5d0S_cWszRYKMw898Ft9uac\n",
    "\n",
    ">Connected with habra_test_bot.\n",
    "\n",
    ">Please add habra_test_bot on Telegram (https://telegram.me/habra_test_bot) and send it the password: 43165\n",
    "\n",
    "А вот пароль (`43165`) надо будет отправить в приват нашему боту. Для этого надо перейти по ссылке от всё того же @BotFather (`t.me/habra_test_bot`) и нажать START:\n",
    "![](https://habrastorage.org/webt/59/db/6c/59db6c6237019597931019.png)\n",
    "\n",
    "![](https://habrastorage.org/webt/59/db/6d/59db6d468e80c693927936.png)\n",
    "\n",
    "После этого для отправки сообщения надо в Jupyter Notebook обратиться через `!` к `telegram-send`:\n",
    "![](https://habrastorage.org/webt/59/db/7a/59db7acc87064607135491.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
